package com.zhongwang.mms.module.purchase.dao;/**
 * 项目名称（软件名称）：忠旺机械物资管理系统(mms)
 * 研发设计单位：忠旺机械设备制造有限公司机械设计院智能控制设计科设计与研发。
 * 版权所有：忠旺机械设备制造有限公司
 * 注：本项目的一切技术专利，使用规范归解释权由忠旺机械设备制造有限公司所有。
 * 软件版本：Ver 1.0.0
 * 文件路径：com.zhongwang.mms.module.purchase.dao
 * 创建时间：2020年05月04日 11时21分
 **/

import com.zhongwang.mms.module.purchase.model.VWProject;
import com.zhongwang.mms.module.purchase.model.adjust.PAdjustModel;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @InterfaceName： PurAdjustDao
 * @Description： 调整持久层
 * @Author： 徐一贺
 * @Date： 2020/5/4 11:21
 * @Version： V1.0
 **/
@Repository
public interface PurAdjustDao {
    /**
     *@FunctionName: getLastCode
     *@Description: 获取最后的调整申请编码
     *@Author: 徐一贺
     *@CreateDate: 2020/5/4 12:42
     *@Phone: 18241927380
     *@Param: [prefixCode]调整申请码前缀
     *@Return: [String] 返回最新的调整申请码
     *@Version: 1.0.0
     */
    String getLastCode(String prefixCode);
    /**
     *@FunctionName: insertSelective
     *@Description: 选择性插入调整申请
     *@Author: 徐一贺
     *@CreateDate: 2020/5/4 12:43
     *@Phone: 18241927380
     *@Param: [pAdjustModel] 调整申请
     *@Return: [void] 空
     *@Version: 1.0.0
     */
    void insertSelective(PAdjustModel pAdjustModel);
    /**
     *@FunctionName: findApplyList
     *@Description: 获取库存调整申请列表
     *@Author: 徐一贺
     *@CreateDate: 2020/5/4 18:09
     *@Phone: 18241927380
     *@Param: [param] 检索条件
     *@Return: com.zhongwang.mms.module.purchase.model.adjust.PAdjustModel 列表数据
     *@Version: 1.0.0
     */
    List<PAdjustModel> findApplyList(PAdjustModel param);
    /**
     *@FunctionName: findReviewList
     *@Description: 获取库存调整审核列表
     *@Author: 徐一贺
     *@CreateDate: 2020/5/4 18:09
     *@Phone: 18241927380
     *@Param: [param] 检索条件
     *@Return: com.zhongwang.mms.module.purchase.model.adjust.PAdjustModel 列表数据
     *@Version: 1.0.0
     */
    List<PAdjustModel> findReviewList(PAdjustModel param);
    /**
     *@FunctionName: applyRemove
     *@Description: 跟库主键删除或修改申请状态（逻辑）调整申请
     *@Author: 徐一贺
     *@CreateDate: 2020/5/4 20:38
     *@Phone: 18241927380
     *@Param: [param]
     *@Return: com.zhongwang.mms.common.JsonResult
     *@Version: 1.0.0
     */
    void updatePAdjustByPrimaryKeys(PAdjustModel param);
    /**
     *@FunctionName: applyRemove
     *@Description: 跟库父级删除或修改申请状态（逻辑）调整申请
     *@Author: 徐一贺
     *@CreateDate: 2020/5/4 20:38
     *@Phone: 18241927380
     *@Param: [param]
     *@Return: com.zhongwang.mms.common.JsonResult
     *@Version: 1.0.0
     */
    void updatePAdjustByAdjPIds(PAdjustModel param);
    /**
     *@FunctionName: getPAdjustModelByPrimaryKey
     *@Description: 根据主键获取调整库存申请信息
     *@Author: 徐一贺
     *@CreateDate: 2020/5/4 20:50
     *@Phone: 18241927380
     *@Param: [adjId] 主键
     *@Return: [PAdjustModel] 库存调整申请信息
     *@Version: 1.0.0
     */
    PAdjustModel getPAdjustModelByPrimaryKey(Integer adjId);
    /**
     *@FunctionName: updateSelectiveByPrimaryKey
     *@Description: 根据主键选择性的更新调整申请执行表内容
     *@Author: 徐一贺
     *@CreateDate: 2020/5/5 15:04
     *@Phone: 18241927380
     *@Param: [param] 主键与跟新内容
     *@Return: com.zhongwang.mms.common.JsonResult
     *@Version: 1.0.0
     */
    void updateSelectiveByPrimaryKey(PAdjustModel param);
    /**
     *@FunctionName: codeExist
     *@Description: 验证项目号是否存在
     *@Author: 徐一贺
     *@CreateDate: 2020/5/5 16:08
     *@Phone: 18241927380
     *@Param: [param]
     *@Return: java.lang.String
     *@Version: 1.0.0
     */
    VWProject findVWProjectByCode(VWProject param);

    /**
     *@FunctionName: findApplyListByAdjIds
     *@Description: 根据主键们获取调整申请列表
     *@Author: 徐一贺
     *@CreateDate: 2020/5/5 16:12
     *@Phone: 18241927380
     *@Param: [adjIds] 主键们
     *@Return: [List<PAdjustModel>] 申请列表
     *@Version: 1.0.0
     */
    List<PAdjustModel> findApplyListByAdjIds(String adjIds);
}
